#ifndef _COMMON_H_
#define _COMMON_H_

#include <stdint.h>
#include <math.h>

#define TIMING
#define MATRIX_SIZE                     100
#define THREAD_NUM			6
#define ROW_NUM 			16
#define OVFL_ROWS_NUM			4

// Some alignment macros
#define QWORD_ALIGNED __attribute__((aligned(16)))
#define CACHE_ALIGNED __attribute__((aligned(128)))

// Control block, for DMA
typedef struct _CONTROL_BLOCK {  
  //unsigned int padding[9];
  unsigned int a QWORD_ALIGNED;
  unsigned int b QWORD_ALIGNED;
  unsigned int c QWORD_ALIGNED; 
} CONTROL_BLOCK;

#endif
